package com.hhck.service;

import com.hhck.dto.AssignRoleDto;
import com.hhck.entity.Page;
import com.hhck.entity.Result;
import com.hhck.entity.Role;
import com.hhck.entity.User;

import java.util.List;

public interface UserService {

    // 根据账号查询用户
    public User queryUserByUserCode(String userCode);

    // 分页查询用户信息
    public Page queryUserByPage(Page page, User user);

    // 添加用户
    public Result saveUser(User user);

    // 根据用户id更改用户状态（启用或禁用）
    public Result modifyUserStateByUserId(User user);

    // 根据用户id查询用户已分配的角色
    public List<Role> queryUserRoleByUserId(Integer userId);

    // 给用户分配角色
    public void saveUserRoleByUserId(AssignRoleDto assignRoleDto);

    // 根据用户id删除用户（逻辑删除）
    public void removeUserByUserId(Integer userId);

    // 批量删除用户（逻辑删除）
    public void batchRemoveUser(List<Integer> userIdList);

    // 根据用户id修改用户昵称（注意更新修改者和修改时间）
    public Result modifyUserNameByUserId(User user);

    // 根据用户id重置密码
    public Result modifyUserPwdByUserId(Integer userId);

    // 根据用户id查询用户权限id
    public List<Integer> queryUserAuthIdListByUserId(Integer userId);

}

